ASP.Net MVC-তে ViewData, ViewBag, এবং TempData হল তিনটি গুরুত্বপূর্ণ ডেটা পাস করার পদ্ধতি যা কন্ট্রোলার এবং ভিউ এর মধ্যে ডেটা শেয়ার করার জন্য ব্যবহৃত হয়। প্রতিটি পদ্ধতির কিছু বৈশিষ্ট্য এবং ব্যবহারিক পার্থক্য রয়েছে। নিচে এই তিনটি পদ্ধতি এবং তাদের ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
ViewData একটি ডিকশনারি অবজেক্ট যা কন্ট্রোলার থেকে ভিউতে ডেটা পাঠানোর জন্য ব্যবহৃত হয়। এটি সাধারণত ছোট আকারের ডেটা বা এক্সট্রা ডেটা শেয়ার করার জন্য ব্যবহার করা হয়। ViewData পাস করা ডেটা এক এক্সিকিউশন রাউন্ডের জন্য বৈধ থাকে, অর্থাৎ, এটি কেবল সেই রিকোয়েস্টের জন্য দৃশ্যমান থাকে।
Controller:
public ActionResult Index()
{
ViewData["Message"] = "Hello from ViewData!";
return View();
}
View (Index.cshtml):
<h2>@ViewData["Message"]</h2>
এখানে, ViewData["Message"]
কন্ট্রোলার থেকে ভিউতে পাঠানো ডেটা রিটার্ন করছে।
ViewBag হল একটি শক্তিশালী বিকল্প ViewData এর, যা ডেটা পাঠানোর জন্য আরও সরল এবং সহজ উপায় প্রদান করে। এটি একটি ডাইনামিক প্রপার্টি, যা কন্ট্রোলার থেকে ভিউতে ডেটা পাস করার জন্য ব্যবহার করা হয়। ViewBagের মধ্যে ডেটা নির্দিষ্ট করার সময় কোনও কাস্টিং বা ডিকশনারি সঠিকভাবে ব্যবহার করার দরকার হয় না, কারণ এটি ডাইনামিক টাইপ।
Controller:
public ActionResult Index()
{
ViewBag.Message = "Hello from ViewBag!";
return View();
}
View (Index.cshtml):
<h2>@ViewBag.Message</h2>
এখানে ViewBag.Message
ডাইনামিকভাবে ডেটা রিটার্ন করছে।
TempData কন্ট্রোলার থেকে ভিউতে বা এক রিকোয়েস্ট থেকে অন্য রিকোয়েস্টে ডেটা শেয়ার করার জন্য ব্যবহৃত হয়। এটি মূলত পরবর্তী রিকোয়েস্টে ডেটা রাখার জন্য ব্যবহার করা হয়, অর্থাৎ, একটি রিকোয়েস্টের পরবর্তী রাউন্ডে এই ডেটা অ্যাক্সেস করা যাবে। TempData মূলত ViewData এবং ViewBag এর চেয়ে বেশি সময় ধরে ডেটা সংরক্ষণ করতে সক্ষম।
Controller:
public ActionResult Index()
{
TempData["Message"] = "This is a message from TempData!";
return RedirectToAction("About");
}
Controller (About Action):
public ActionResult About()
{
ViewBag.Message = TempData["Message"];
return View();
}
View (About.cshtml):
<h2>@ViewBag.Message</h2>
এখানে, TempData["Message"]
ব্যবহার করে RedirectToAction এর মাধ্যমে ডেটা পাঠানো হয়েছে এবং পরবর্তী রিকোয়েস্টে ViewBag-এ সেট করা হয়েছে।
বৈশিষ্ট্য | ViewData | ViewBag | TempData |
---|---|---|---|
টাইপ | Dictionary<string, object> | Dynamic | Dictionary<string, object> |
ডেটা জীবনকাল | এক রিকোয়েস্টের জন্য | এক রিকোয়েস্টের জন্য | পরবর্তী রিকোয়েস্ট পর্যন্ত |
কাস্টিং প্রয়োজন | হ্যাঁ, ডেটা কাস্ট করতে হবে | না, ডাইনামিক টাইপ ব্যবহার | হ্যাঁ, ডেটা কাস্ট করতে হবে |
ব্যবহার | সাধারণ ডেটা পাঠানোর জন্য | সহজ এবং দ্রুত ডেটা পাঠানোর জন্য | পরবর্তী রিকোয়েস্টে ডেটা শেয়ার করার জন্য |
ViewData, ViewBag, এবং TempData তিনটি গুরুত্বপূর্ণ পদ্ধতি যা ASP.Net MVC-তে কন্ট্রোলার থেকে ভিউতে ডেটা পাঠানোর জন্য ব্যবহৃত হয়। ViewData এবং ViewBag সাধারণত একই রিকোয়েস্টের মধ্যে ডেটা শেয়ার করতে ব্যবহৃত হয়, তবে TempData পরবর্তী রিকোয়েস্টের জন্য ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। প্রতিটি পদ্ধতির আলাদা ব্যবহার এবং সীমাবদ্ধতা রয়েছে, এবং আপনি কোন পদ্ধতিটি ব্যবহার করবেন তা নির্ভর করে আপনার প্রয়োজনীয়তার উপর।
common.read_more